cd config/kraft/
vi server.properties
# 節(jié)點(diǎn)角色
process.roles=broker,controller
?
#節(jié)點(diǎn)ID,和節(jié)點(diǎn)所承擔(dān)的角色想關(guān)聯(lián)
node.id=1
?
# 集群地址
controller.quorum.voters=1@192.168.0.113:9093,2@192.168.0.114:9093,3@192.168.0.115:9093
?
#本機(jī)節(jié)點(diǎn)
listeners=PLAINTEXT://192.168.0.113:9092,CONTROLLER://192.168.0.113:9093
?
# 這里我修改了日志文件的路徑,默認(rèn)是在/tmp目錄下的
log.dirs=/home/guohao/kafka_2.13-3.1.0/kraftlog/kraft-combined-logs
Process.Roles
每個(gè)Kafka服務(wù)器現(xiàn)在都有一個(gè)新的配置項(xiàng),叫做Process.Roles, 這個(gè)參數(shù)可以有以下值:
如果Process.Roles = Broker, 服務(wù)器在KRaft模式中充當(dāng) Broker。
如果Process.Roles = Controller, 服務(wù)器在KRaft模式下充當(dāng) Controller。
如果Process.Roles = Broker,Controller,服務(wù)器在KRaft模式中同時(shí)充當(dāng) Broker 和Controller。
如果process.roles 沒有設(shè)置。那么集群就假定是運(yùn)行在ZooKeeper模式下。
如前所述,目前不能在不重新格式化目錄的情況下在ZooKeeper模式和KRaft模式之間來回轉(zhuǎn)換。同時(shí)充當(dāng)Broker和Controller的節(jié)點(diǎn)稱為“組合”節(jié)點(diǎn)。
對(duì)于簡單的場景,組合節(jié)點(diǎn)更容易運(yùn)行和部署,可以避免多進(jìn)程運(yùn)行時(shí),JVM帶來的相關(guān)的固定內(nèi)存開銷。關(guān)鍵的缺點(diǎn)是,控制器將較少地與系統(tǒng)的其余部分隔離。例如,如果代理上的活動(dòng)導(dǎo)致內(nèi)存不足,則服務(wù)器的控制器部分不會(huì)與該OOM條件隔離。
Quorum Voters
系統(tǒng)中的所有節(jié)點(diǎn)都必須設(shè)置 `controller.quorum.voters` 配置。這個(gè)配置標(biāo)識(shí)有哪些節(jié)點(diǎn)是 Quorum 的投票者節(jié)點(diǎn)。所有想成為控制器的節(jié)點(diǎn)都需要包含在這個(gè)配置里面。這類似于在使用ZooKeeper時(shí),使用ZooKeeper.connect配置時(shí)必須包含所有的ZooKeeper服務(wù)器。
然而,與ZooKeeper配置不同的是,`controller.quorum.voters` 配置需要包含每個(gè)節(jié)點(diǎn)的id。格式為: id1@host1:port1,id2@host2:port2。